package cn.wolfcode.domain;

import cn.wolfcode.enums.AppointmentStarusEnum;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

@Getter
@Setter
public class Appointment {
    /** 主键*/
    private Long id;

    /** 预约单流水号*/
    private String ano;

    /** 预约单状态 （预约中/履行中/消费中/归档/废弃单）*/
    private Integer status;

    /** 业务大类*/
    private SystemDictionaryItem category;

    /** 预约说明*/
    private String info;

    /** 联系电话*/
    private String contactTel;

    /** 联系人名称*/
    private String contactName;

    /** 预约门店*/
    private Business business;

    /** 创建时间*/
    @DateTimeFormat(pattern ="yyyy-MM-dd HH:mm")
    private Date createTime;

    /** 预约时间
     * 由于在数据库中取出的是时间戳,所以需要提供多一个模板响应在浏览器
     *
     * */
    @DateTimeFormat(pattern ="yyyy-MM-dd HH:mm")
    @JSONField(format = "yyyy-MM-dd HH:mm")
    private Date appointmentTime;

//    确认状态的时候,枚举了多种状态,然后获取即可,响应的时候,底层${}是通过get方法获取数值的
    public String getStatusName(){
      return AppointmentStarusEnum.findName(this.status);
    }

    @Override
    public String toString(){
        return JSON.toJSONString(this);
    }

}